package org.example.code.test2025.three_month;

import java.util.*;

public class test0308 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int q = in.nextInt();
        for(int i=0;i<q;i++){
            long n = in.nextLong();
            long m = in.nextLong();
            long k = in.nextLong();
            fun(n,m,k);
        }
    }

    public static void fun(long n, long m, long k) {
        long maxNM = Math.max(n, m);
        long sumNM = n + m;
        long ceilHalf = (sumNM + 1) / 2; // 计算 ceil((n+m)/2)

        if (k >= maxNM && k >= ceilHalf && k <= sumNM) {
            System.out.println(sumNM - k);
        } else {
            System.out.println(-1);
        }
    }

//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        int k = in.nextInt();
//        int[] arr = new int[n];
//        for(int i=0;i<n;i++){
//            arr[i] = in.nextInt();
//        }
//        fun2(n,k,arr);
//        in.close();
//    }
//
//    private static void fun2(int n, int k, int[] arr) {
//        int[][] dp = new int[n+1][2];
//        for(int i=1;i<=n;i++){
//            dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1])+1;
//            if(i<=k){
//                if(arr[i-1]==0){
//                    dp[i][1]=dp[i-1][0]+2;
//                }else{
//                    dp[i][1]=dp[i-1][0]+4;
//                }
//            }else{
//                int max =0;
//                for(int j=i-k;j<=i-2;j++){
//                    if(j>=0){
//                        max = Math.max(max,dp[j][0]);
//                    }
//                }
//                int t = dp[i-1][1]>0&&(i-1)<=k?dp[i-1][1]+(arr[i-1]==0?2:4):0;
//                dp[i][1]=Math.max(max+(arr[i-1]==0?2:4),t);
//            }
//        }
//        System.out.println(Math.max(dp[n][0],dp[n][1]));
//    }


}
